package com.hiyee.cart.service;

import com.hiyee.pojo.Cart;
import com.hiyee.pojo.CartItem;
import com.hiyee.pojo.bo.CartAddBO;
import com.hiyee.pojo.bo.CartDeleteBO;
import com.hiyee.pojo.bo.CartUpdateBO;
import com.hiyee.pojo.repo.CartCheckoutRepo;
import com.hiyee.pojo.repo.CartInfoRepo;
import com.hiyee.pojo.vo.CartAddVO;

import java.util.List;

/**
 * 购物车业务接口
 *
 * @author WangBin
 */
public interface CartService {
    /**
     * 查询客户的购物车商品数量
     *
     * @param Long customerId
     * @return Integer
     */
    public Integer getCartNum(Long customerId);

    /**
     * 添加购物车
     *
     * @param CartAddBO cartAddVO
     * @param Long customerId
     * @return CartAddVO
     */
    public CartAddVO add(CartAddBO cartAddVO, Long customerId);

    /**
     * 查询客户购物车列表
     *
     * @return List<CartItem>
     */
    public CartInfoRepo getList();

    /**
     * 更新购物车数据
     *
     * @param CartUpdateBO cartUpdateBO
     * @return CartUpdateBO
     */
    public Integer update(CartUpdateBO cartUpdateBO);

    /**
     * 删除购物车数据
     *
     * @param CartDeleteBO cartDeleteBO
     * @return Integer
     */
    public Integer delete(CartDeleteBO cartDeleteBO);

    /**
     * 购物车结算
     *
     * @return
     */
    public CartCheckoutRepo checkout();
}
